// 1. 抽象迭代器
// 迭代器模式 - 抽象迭代器接口
// 定义了遍历聚合对象元素的接口方法
// 封装了聚合对象的遍历逻辑，隐藏聚合对象的内部结构
public interface IIterator<T>
{
  // 获取当前元素
  // 返回值: 当前位置的元素
  T Current { get; }

  // 移动到下一个元素
  // 返回值: 如果成功移动到下一个元素则返回true，否则返回false（到达集合末尾）
  bool MoveNext();

  // 重置迭代器到初始位置
  void Reset();
}